import { defHttp } from '@/utils/http/axios';
import { BasicFetchResult } from '@/api/model/baseModel';
import { IsOnStateEnum } from '@/enums/customFormEnum';
import {
  MerchantConfig,
  MerchanItem,
  SelectMerchantItem,
  ProductItem,
  ProductReviewItem,
  UnionInfoConfig,
  ProductPlusConfig,
  PromotionTemplate,
  TemplateGroupItem
} from './type';
import { IProductDetail } from '../productManage/type';
import { ReviewStatus } from '@/enums/productManage';

/**
 * 联盟组织列表
 * @param params
 * @returns
 */
export function getMerchantList(params) {
  return defHttp.get<BasicFetchResult<MerchanItem>>({
    url: `/mall/op/union-merchant/merchantDataList`,
    params: { ...params, unionId: 1 },
  });
}

/**
 * 组织列表-穿梭框
 * @param params
 * @returns
 */
export function getMerchantListModal(params) {
  return defHttp.get<BasicFetchResult<SelectMerchantItem>>({
    url: `/mall/op/union-merchant/merchantList`,
    params: { ...params, unionId: 1 },
  });
}

/**
 * 联盟添加组织
 * @param merchants
 */
export function addMerchant(merchants: number[]) {
  return defHttp.post({
    url: `/mall/op/union-merchant/addMerchant`,
    data: { merchants, unionId: 1 },
  });
}

/**
 * 联盟组织状态变更
 * @param data
 */
export function merchantUpStatus(data: { id: number; joinFlag: IsOnStateEnum }) {
  return defHttp.post({
    url: `/mall/op/union-merchant/joinFlag`,
    data,
  });
}

/**
 * 联盟组织基础配置信息
 * @param id
 * @returns
 */
export function merchanConfigInfo(id: number) {
  return defHttp.get<MerchantConfig>({
    url: `/mall/op/union-merchant/merchantConfigInfo?id=${id}`,
  });
}

/**
 * 联盟组织信息变更
 * @param data
 */
export function merchantUpData(data: MerchantConfig) {
  return defHttp.post({
    url: `/mall/op/union-merchant/merchantInfoChange`,
    data: {
      changFlag: 1, // 修改组织配置必传,后端要求写死
      ...data
    },
  });
}

/**
 * 联盟产品库列表
 * @param params
 * @returns
 */
export function getProductList(params) {
  return defHttp.get<BasicFetchResult<ProductItem>>({
    url: `/mall/op/product-union/unionList`,
    params,
  });
}

/**
 * 联盟产品库移除该产品
 * @param id
 * @returns
 */
export function removeProduct(id: number) {
  return defHttp.post({
    url: `/mall/op/product-union/remove/${id}`,
  });
}

/**
 * 获取-联盟产品库-推广设置
 * @param id
 * @returns
 */
export function getProductPushConfig(id) {
  return defHttp.get<ProductItem>({
    url: `/mall/op/product-union/unionDetail/${id}`,
  });
}

/**
 * 设置-联盟产品库-推广设置
 * @param data
 */
export function setProductPushConfig(data: ProductPlusConfig) {
  return defHttp.post({
    url: `/mall/op/product-union/unionPushConfig`,
    data,
  });
}

/**
 * 产品审核列表
 * @param params
 * @returns
 */
export function getProductAuditList(params) {
  return defHttp.get<BasicFetchResult<ProductReviewItem>>({
    url: `/mall/op/product-union/reviewList`,
    params,
  });
}

/**
 * 产品审核详情
 * @param id
 * @returns
 */
export function getProductAuditDetail(id: number) {
  return defHttp.get<IProductDetail>({
    url: `/mall/op/product-union/reviewDetail/${id}`,
  });
}

/**
 * 联盟产品审核
 * @param data
 */
export function auditProduct(data: {
  id: number;
  reviewStatus: ReviewStatus;
  reviewContent?: string;
}) {
  return defHttp.post({
    url: `/mall/op/product-union/review`,
    data,
  });
}



/**
 * 联盟配置-信息修改
 * @param data
 */
export function editMerchantInfo(data: UnionInfoConfig) {
  return defHttp.post({
    url: `/mall/op/union-info-config/config`,
    data,
  });
}

/**
 * 联盟配置查询
 * @param id
 * @returns
 */
export function getUnionInfoConfig(id: number) {
  return defHttp.get<UnionInfoConfig>({
    url: `/mall/op/union-info-config/config`,
    params: { id },
  });
}




/**
 *联盟板块列表
 */
 export function getMerchantTemplateList() {
  return defHttp.get({
    url: `/mall/op/union-template-info/templateList?id=${1}`,
  });
}

/**
 *联盟板块详情
 * @param id
 */
 export function getMerchantTemplatInfo(id) {
  return defHttp.get<PromotionTemplate>({
    url: `/mall/op/union-template-info/templatInfo?id=${id}`,
  });
}

/**
 *联盟展示首页的机构列表
 * @param id
 */
 export function getMerchantIndexList(id) {
  return defHttp.get({
    url: `/mall/op/union-template-show-tenanmap/showIndexList?id=${id}`,
  });
}

/**
 *联盟板块配置
 * @param data
 */
export function merchantTemplateConfig(data: PromotionTemplate) {
  return defHttp.post({
    url: `/mall/op/union-template-info/config`,
    data,
  });
}

/**
 *获取-联盟信息模块分组配置
 * @param id
 */
 export function getMerchantTemplateGroupConfig(id) {
  return defHttp.get<TemplateGroupItem[]>({
    url: `/mall/op/union-template-group-data/groupList?templateId=${id}&size=15`,
  });
}

/**
 *新增-联盟信息模块分组配置
 * @param data
 */
 export function addMerchantTemplateGroup(data) {
  return defHttp.post({
    url: `/mall/op/union-template-group-data/groupAdd`,
    data,
  });
}

/**
 *设置-联盟信息模块分组配置
 * @param data
 */
export function setMerchantTemplateGroup(data) {
  return defHttp.post({
    url: `/mall/op/union-template-group-data/config`,
    data,
  });
}

/**
 *删除-联盟信息模块分组配置
 * @param data
 */
 export function removeMerchantTemplateGroup(id: number) {
  return defHttp.get({
    url: `/mall/op/union-template-group-data/groupDelete?id=${id}`,
  });
}



/**
 *联盟信息模块-分组已添加产品列表
 * @param data
 */
 export function getMerchantTemplateProductList(data) {
  return defHttp.post({
    url: `/mall/op/union-template-group-data/productListByGroupId?current=${data.current}&size=${data.size}`,
    data, 
  });
}

/**
 *联盟信息模块-分组待添加产品列表
 * @param data
 */
 export function getMerchantTemplateNoChoiceProductList(data) {
  return defHttp.post({
    url: `/mall/op/union-template-group-data/productListNoChoice?current=${data.current}&size=${data.size}`,
    data,
  });
}

/**
 *联盟信息模块-添加产品
 * @param data
 */
 export function merchantTemplateGroupAddProduct(data) {
  return defHttp.post({
    url: `/mall/op/union-template-group-data/groupAddProduct`,
    data,
  });
}

/**
 *联盟信息模块-删除产品
 * @param data
 */
 export function merchantTemplateGroupRemoveProduct(data) {
  return defHttp.post({
    url: `/mall/op/union-template-group-data/groupDelProduct`,
    data
  });
}

/** 
 * 联盟订单列表
 * @param params
 */
export function getOrderList(params) {
  return defHttp.get({
    url: `/mall/op/order/unionOrderList`,
    params,
  });
}

/**
 * 订单详情-新接口
 * @param id
 */
 export function getOrderDetail(id) {
  return defHttp.get({
    url: `/mall/op/order/detail/${id}`,
  });
}


